#pragma once
#include "utils.h"

enum class ObjType : uint8 {
  Item = 1,
  Container = 2,
  Npc = 5,
  Player = 7,
};

struct Obj {
  uint64 ptr() const;
  ObjType type() const;
  uint32 index() const;
  uint64 id1() const;
  uint64 id2() const;
  // --- Constructors ---
  Obj(uint64 ptr);
  Obj(Obj &&) = default;
  Obj(const Obj &) = default;
  Obj &operator=(Obj &&) = default;
  Obj &operator=(const Obj &) = default;
  ~Obj();

private:
  uint64 ptr_;
  ObjType type_;
  uint32 index_;
  uint64 id1_;
  uint64 id2_;
};
